repo: Improve GPG error messages
authorColin Walters <walters@verbum.org>
Thu, 30 Jan 2014 22:17:36 +0000 (17:17 -0500)
committerColin Walters <walters@verbum.org>
Thu, 30 Jan 2014 22:17:36 +0000 (17:17 -0500)
The signing test is failing here on EL7 beta for me - it seems like
gnupg isn't honoring the homedir.

src/libostree/ostree-repo.c

index 2309a8620f57fd9ef3e0e4b8d37af844b68ead1c..d9938d92ef3343a4feb46b9e9910d28345f7307a 100644 (file)
@@ -1549,14 +1549,23 @@ ostree_repo_sign_commit (OstreeRepo     *self,
     }
 
   info = gpgme_ctx_get_engine_info (context);
+
+  if ((err = gpgme_set_protocol (context, GPGME_PROTOCOL_OpenPGP)) !=
+      GPG_ERR_NO_ERROR)
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   "Unable to set gpg protocol");
+      goto out;
+    }
   
   if (homedir != NULL)
     {
-      if ((err = gpgme_ctx_set_engine_info (context, info->protocol, info->file_name, homedir))
+      if ((err = gpgme_ctx_set_engine_info (context, info->protocol, "ostree", homedir))
           != GPG_ERR_NO_ERROR)
         {
           g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                       "Unable to set gpg homedir");
+                       "Unable to set gpg homedir to '%s'",
+                       homedir);
           goto out;
         }
     }
@@ -1565,7 +1574,8 @@ ostree_repo_sign_commit (OstreeRepo     *self,
   if ((err = gpgme_get_key (context, key_id, &key, 1)) != GPG_ERR_NO_ERROR)
     {
       g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                   "No gpg key found with the given key-id");
+                   "No gpg key found with ID %s (homedir: %s)", key_id,
+                   homedir ? homedir : "<default>");
       goto out;
     }